/**
 * @Name：layuiAdmin 系统管理->用户管理
 * @Author：根据已有代码生成
 * @Site：无
 * @License：无
 */


layui.define(['table', 'form'], function (exports) {
  var $ = layui.$
      , admin = layui.admin
      , view = layui.view
      , table = layui.table
      , form = layui.form;

  // 用户管理
  table.render({
    elem: '#LAY-user-manage'
    , url: '/getAllUserServlet'
    , cols: [[
      { type: 'checkbox', fixed: 'left' }
      , { field: 'userId', width: 100, title: '用户ID', sort: true }
      , { field: 'userName', title: '用户名', minWidth: 200 }
      , { field: 'teacherId', title: '教师ID', width: 150 }
      , { field: 'roleId', title: '角色ID', width: 150 }
      , { field: 'userFlag', title: '用户状态', width: 80 }
      , { title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-system-user' }
    ]]
    , page: true
    , limit: 10
    , height: 'full-320'
    , text: '对不起，加载出现异常！'
  });

  // 监听工具条
  table.on('tool(LAY-user-manage)', function (obj) {
    var data = obj.data;
    console.log(data);
    if (obj.event === 'del') {
      layer.confirm('真的要删除该用户么？', function (index) {
        $.ajax({
          type: 'POST'
          , url: '/deleteUserServlet'
          , data: { "cid": data.userId }
          , success: function (data) {
            if (data == "Ok") {
              layer.alert('删除成功', { icon: 6 });
              obj.del();
            } else {
              layer.alert(data, { title: '删除失败' });
            }
          }
        });
        layui.table.reload('LAY-user-manage');
      });
    } else if (obj.event === 'edit') {
      admin.popup({
        title: '编辑用户'
        , area: ['500px', '450px']
        , id: 'LAY-popup-user-edit'
        , success: function (layero, index) {
          view(this.id).render('user/update', data).done(function () {
            form.render(null, 'layuiadmin-form-user');

            // 监听提交
            form.on('submit(LAY-user-modify)', function (data) {
              var field = data.field;
              console.log( field);
              $.ajax({
                type: 'POST',
                url: '/updateUserServlet',
                data: field,
                success: function (data) {
                  if (data == "Ok") {
                    layer.alert("修改成功", {
                      icon: 6
                    });
                  } else {
                    layer.alert(data, {
                      title: '修改失败'
                    });
                  }
                }
              });
              layui.table.reload('LAY-user-manage');
              layer.close(index);
            });
          });
        }
      });
    }
  });

  form.render(null, 'layadmin-userfront-formlist');

  // 监听搜索
  form.on('submit(LAY-user-front-search)', function (data) {
    var field = data.field;

    // 执行重载
    table.reload('LAY-user-manage', {
      page: {
        curr: 1
      }
      , where: field
      , method: 'post'
    });
  });

  // 事件
  var active = {
    batchdel: function () {
      var checkStatus = table.checkStatus('LAY-user-manage')
          , checkData = checkStatus.data;

      if (checkData.length === 0) {
        return layer.msg('请选择数据');
      }

      layer.prompt({
        formType: 1
        , title: '敏感操作，请验证口令'
      }, function (value, index) {
        layer.close(index);

        layer.confirm('确定删除选中的用户吗？', function (index) {
          table.reload('LAY-user-manage');
          layer.msg('已删除');
        });
      });
    }
    , add: function () {
      admin.popup({
        title: '添加用户'
        , area: ['500px', '450px']
        , id: 'LAY-popup-user-add'
        , success: function (layero, index) {
          view(this.id).render('user/add').done(function () {
            form.render(null, 'layuiadmin-form-user');

            // 监听提交
            form.on('submit(LAY-user-add)', function (data) {
              var field = data.field;

              $.ajax({
                type: 'POST',
                url: '/addUserServlet',
                data: field,
                success: function (data) {
                  if (data == "Ok") {
                    layer.alert("增加成功", {
                      icon: 6
                    });
                  } else {
                    layer.alert(data, {
                      title: '添加失败'
                    });
                  }
                }
              });
              layui.table.reload('LAY-user-manage');
              layer.close(index);
            });
          });
        }
      });
    }
  };

  $('.layui-btn.layuiadmin-btn-useradmin').on('click', function () {
    var type = $(this).data('type');
    active[type] ? active[type].call(this) : '';
  });

  exports('user', {});
});